/**
 * 认证管理相关类型定义
 */

/** 登录请求参数 */
export interface LoginRequest {
  /** 账户名 */
  accountName: string
  /** 密码 */
  password: string
  /** 验证码 */
  captcha?: string
  /** 验证码Key */
  captchaKey?: string
  /** 记住我 */
  rememberMe?: boolean
}

/** 用户基本信息 */
export interface UserInfo {
  /** 用户ID */
  userId: number
  /** 账户名 */
  accountName: string
  /** 昵称 */
  nickName: string
  /** 头像 */
  avatar: string
  /** 邮箱 */
  email: string
  /** 手机号 */
  phone: string
  /** 是否管理员 */
  isAdmin: boolean
  /** 最后登录时间 */
  lastLoginTime: string
  /** 角色列表 */
  roles: string[]
  /** 权限列表 */
  permissions: string[]
}

/** 登录响应数据 */
export interface LoginResponse {
  /** 访问令牌 */
  accessToken: string
  /** 刷新令牌 */
  refreshToken: string
  /** 令牌类型 */
  tokenType: string
  /** 访问令牌过期时间(秒) */
  expiresIn: number
  /** 用户基本信息 */
  userInfo: UserInfo
}

/** 验证码响应数据 */
export interface CaptchaResponse {
  /** 验证码唯一标识 */
  captchaId: string
  /** 验证码图片Base64编码 */
  captchaImage: string
  /** 验证码过期时间（毫秒时间戳） */
  expireTime: number
  /** 验证码有效期（秒） */
  expireIn: number
}

/** 刷新Token请求参数 */
export interface RefreshTokenRequest {
  /** 刷新令牌 */
  refreshToken: string
}

/** 验证码验证请求参数 */
export interface CaptchaValidateRequest {
  /** 验证码ID */
  captchaId: string
  /** 验证码 */
  captchaCode: string
}
